کشف حملهی TapTrap در Android؛ ترفند جدید مهندسی اجتماعی با رابط پنهان
فناوری جدیدی از حمله Tapjacking میتواند با سوءاستفاده از انیمیشنهای رابط کاربری در اندروید، سیستم مجوزدهی این سیستمعامل را دور زده و به دادههای حساس دسترسی پیدا کند یا کاربران را به انجام اقدامات مخرب، مانند بازنشانی کامل دستگاه، ترغیب کند.
بر خلاف روشهای سنتی Tapjacking که مبتنی بر لایههای پوشاننده (Overlay) هستند، حملات TapTrap حتی توسط اپلیکیشنهایی با صفر سطح دسترسی نیز قابل اجرا بوده و با اجرای یک activity شفاف و بیضرر بر روی یک فعالیت مخرب، بدون نیاز به مجوزهای خاص عمل میکند. این رفتار همچنان در نسخههای Android 15 و Android 16 بدون راهکار حفاظتی باقی مانده است.
TapTrap توسط تیمی از پژوهشگران امنیتی در دانشگاه صنعتی وین (TU Wien) و دانشگاه Bayreuth شامل Philipp Beer، Marco Squarcina، Sebastian Roth و Martina Lindorfer توسعه یافته و قرار است ماه آینده در کنفرانس USENIX Security Symposium ارائه شود. با این حال، تیم پژوهشی مقالهای فنی درباره این حمله منتشر کرده و وبسایتی نیز برای تشریح جزئیات آن راهاندازی کردهاند.
نحوه عملکرد TapTrap
حمله TapTrap از نحوه مدیریت انتقال فعالیتها (Activity Transitions) همراه با انیمیشنهای سفارشی در سیستمعامل اندروید سوءاستفاده میکند تا یک ناهماهنگی بصری بین آنچه کاربر مشاهده میکند و آنچه دستگاه ثبت میکند، ایجاد نماید.
در این روش، یک اپلیکیشن مخرب نصبشده روی دستگاه قربانی، یک صفحه سیستمی حساس (مانند پنجره درخواست مجوز یا تنظیمات سیستم) را از طریق اپلیکیشن دیگری و با استفاده از تابع startActivity() فراخوانی میکند؛ اما این بار همراه با انیمیشنی سفارشی با شفافیت پایین (low-opacity).
پژوهشگران در توضیح این حمله میگویند:
«کلید اصلی TapTrap، استفاده از انیمیشنی است که activity هدف را تقریباً نامرئی نمایش دهد.»
به گفته آنان، این کار از طریق تعریف یک انیمیشن سفارشی با مقادیر alpha بسیار پایین — برای مثال ۰٫۰۱ در ابتدا و انتهای انیمیشن — انجام میشود، که باعث میشود فعالیت مخرب یا پرخطر تقریباً بهطور کامل شفاف و نامشهود شود.
بهصورت اختیاری، میتوان یک انیمیشن scale نیز اعمال کرد تا یک عنصر خاص در رابط کاربری (مثلاً دکمه تأیید دسترسی) را بزرگنمایی کرده و کل صفحه را اشغال کند، در نتیجه احتمال کلیک کاربر روی آن افزایش یابد.
اگرچه تمام رویدادهای لمسی (Touch Events) توسط پنجرهای که فراخوانی شده دریافت میشوند، اما آنچه کاربر مشاهده میکند تنها رابط کاربری اپلیکیشن زیرین است. در واقع، صفحهای شفاف و تقریباً نامرئی در بالای آن قرار دارد که کاربر با آن تعامل دارد.
کاربر که تصور میکند در حال کار با اپلیکیشن بیخطر است، ممکن است روی نقاطی از صفحه ضربه بزند که در واقع با عملکردهای پرریسک مطابقت دارند — مانند دکمههای «اجازه دادن» (Allow) یا «تأیید» (Authorize) در پنجرههای سیستمی تقریباً نامرئی.
ویدیویی که توسط پژوهشگران منتشر شده نشان میدهد چگونه یک اپلیکیشن بازی میتواند از تکنیک TapTrap برای فعالسازی دسترسی به دوربین توسط مرورگر Chrome برای یک وبسایت بهرهبرداری کند.
ریسک و سطح آسیبپذیری
برای ارزیابی کاربرد TapTrap در اپلیکیشنهای موجود در Google Play Store، پژوهشگران نزدیک به ۱۰۰٬۰۰۰ اپلیکیشن را بررسی کردند. آنها دریافتند که ۷۶٪ از این اپلیکیشنها نسبت به TapTrap آسیبپذیر هستند، چراکه حداقل یک activity دارند که شرایط زیر را داراست:
- قابلیت راهاندازی توسط اپلیکیشن دیگر را دارد
- در همان تسک (task) اپلیکیشن فراخواننده اجرا میشود
- انیمیشن انتقال (transition animation) را بازنویسی نمیکند
- قبل از دریافت ورودی کاربر، منتظر پایان انیمیشن نمیماند
پژوهشگران میگویند که انیمیشنها در آخرین نسخه اندروید بهصورت پیشفرض فعال هستند، مگر اینکه کاربر آنها را از طریق Developer Options یا تنظیمات Accessibility غیرفعال کرده باشد؛ موضوعی که دستگاهها را در برابر حملات TapTrap آسیبپذیر میسازد.
در زمان توسعه این حمله، محققان از نسخه Android 15 استفاده کردند که در آن زمان آخرین نسخه بود. پس از انتشار Android 16 نیز، آزمایشهایی بر روی آن انجام دادند.
Marco Squarcina در گفتوگو با BleepingComputer اعلام کرد که تیم آنها TapTrap را روی گوشی Google Pixel 8a با سیستمعامل Android 16 آزمایش کرده و تأیید میکنند که این مشکل همچنان بدون اصلاح باقی مانده است.
GrapheneOS — سیستمعامل موبایلی متمرکز بر حریم خصوصی و امنیت — نیز این آسیبپذیری را در Android 16 تأیید کرده و اعلام کرده که در نسخه بعدی خود، راهکاری برای مقابله با TapTrap ارائه خواهد داد.
وبسایت BleepingComputer در اینباره با گوگل تماس گرفته و یک سخنگوی گوگل در پاسخ گفته است:
«اندروید بهصورت مستمر در حال بهبود راهکارهای مقابله با حملات Tapjacking است. ما از این پژوهش مطلع هستیم و قصد داریم این مسئله را در بهروزرسانیهای آتی رفع کنیم. Google Play دارای سیاستهایی برای ایمنی کاربران است که تمامی توسعهدهندگان باید از آنها تبعیت کنند؛ و در صورت مشاهده تخلف، اقدامات مقتضی انجام خواهد شد.»